package cn.edu.scau.cmi.ema.dao;

import java.util.Set;

import org.springframework.dao.DataAccessException;
import cn.edu.scau.cmi.ema.domain.*;
import cn.edu.scau.cmi.ema.domain.base.CmiPagination;

public interface VideoDAO extends JpaDao<Video> {

	public Video findVideoById(Integer id) throws DataAccessException;

	public Video findVideoById(Integer id, int startResult, int maxRows) throws DataAccessException;

	public Set<Video> findVideoByName(String name) throws DataAccessException;

	public Set<Video> findVideoByName(String name, int startResult, int maxRows) throws DataAccessException;

	public Set<Video> findVideoByNameContaining(String name_1) throws DataAccessException;

	public Set<Video> findVideoByNameContaining(String name_1, int startResult, int maxRows) throws DataAccessException;

	public Set<Video> findVideoByPath(String path) throws DataAccessException;

	public Set<Video> findVideoByPath(String path, int startResult, int maxRows) throws DataAccessException;

	public Set<Video> findVideoByPathContaining(String path_1) throws DataAccessException;

	public Set<Video> findVideoByPathContaining(String path_1, int startResult, int maxRows) throws DataAccessException;

	public Set<Video> findVideoByDescription(String description) throws DataAccessException;

	public Set<Video> findVideoByDescription(String description, int startResult, int maxRows)
			throws DataAccessException;

	public Set<Video> findVideoByDescriptionContaining(String description_1) throws DataAccessException;

	public Set<Video> findVideoByDescriptionContaining(String description_1, int startResult, int maxRows)
			throws DataAccessException;

	public Video findVideoByPrimaryKey(Integer id) throws DataAccessException;

	public Video findVideoByPrimaryKey(Integer id, int startResult, int maxRows) throws DataAccessException;

	public Set<Video> findVideosByIds(Set<Integer> ids) throws DataAccessException;

	public Set<Video> findAllVideos() throws DataAccessException;

	public Set<Video> findAllVideos(int startResult, int maxRows) throws DataAccessException;

	public Set<Video> findVideosByEvent(Integer eventId, int start, int max);

	public Set<Video> findVideosByFood(Integer foodId, int start, int max);

	public Set<Video> findVideoByCompositeProperities(String sql, int startResult, int maxRows)
			throws DataAccessException;

	public Set<Video> findVideosByDetachedCriteria(CmiPagination page) throws DataAccessException;

	public Video findVideoByPhysicalPrimaryKey(String name, String path) throws DataAccessException;

	public Video findVideoByPhysicalPrimaryKey(String name, String path, int startResult, int maxRows)
			throws DataAccessException;
}
